package hl.fildir;

import java.io.*;

public class FileTest {
    public static void main(String[] args) throws IOException{

        var file = new File("he");
        //file.createNewFile();

        // 直接获取文件名
        System.out.println(file.getName());
        // 获取 相对路径的 父路径 （可能出错，返回 null）
        System.out.println(file.getParent());

        // 获取 绝对路径
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getAbsolutePath());
        // 获取 上一级路径
        System.out.println(file.getAbsoluteFile().getParent());

        // 创建一个 临时文件 tmpFile
        File tmpFile = File.createTempFile("aaa", ".txt");
        // jvm 退出时 删除此 临时文件
        tmpFile.deleteOnExit();

        // 创建一个 File类的对象实例 newFile
        var newFile1 = new File("abc");
        var newFile2 = new File("abc.txt");
        //newFile1.mkdir();// 调用 mkdir()方法 创建为 目录
        //newFile2.createNewFile();// 调用 createNewFile()方法 创建为 文件

        // 使用 list() 方法 列出 当前路径下 所有的文件名 和 路径名
        File file2 = new File(".");
        String[] fileList = file2.list();
        System.out.println("==== 当前路径下的 文件名 和 路径名 ====");
        for (var fileName : fileList){
            System.out.println(fileName);
        }

        // 使用 listRoots() 方法 列出 所有的 磁盘根路径
        File[] roots = File.listRoots();
        System.out.println("==== 系统的 所有 根路径名 ====");
        for (var root : roots){
            System.out.println(root);
        }

        // 过滤文件 只打印 .doc 结尾的文件 和 目录
        var file3 = new File(".");
        String[] nameList2 = file3.list( (dir, name) -> name.endsWith(".doc") || new File(name).isDirectory() );
        for (var name : nameList2){
            System.out.println(name);
        }

    }
}
